package com.snack.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.snack.common.core.annotation.Excel;
import com.snack.common.core.web.domain.BaseEntity;

/**
 * 订单对象 ts_order
 * 
 * @author snack
 * @date 2022-09-18
 */
@Data
public class TsOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单id */
    private Long orderId;

    /** 订单编码 */
    @Excel(name = "订单编码")
    private String code;

    /** 下单人编码 */
    @Excel(name = "下单人编码")
    private String userCode;

    /** 总价 */
    @Excel(name = "总价")
    private BigDecimal priceTotal;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal lat;

    /** 纬度 */
    @Excel(name = "纬度")
    private BigDecimal lng;

    /** 类型 D:配送 F:自取 */
    @Excel(name = "类型 D:配送 F:自取")
    private String type;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date openTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sendTime;

    /** 确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sureTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /** 取消时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancelTime;

    /** 配送人id */
    @Excel(name = "配送人id")
    private Long sendUserId;

    /** 取消人id */
    @Excel(name = "取消人id")
    private Long cancelUserId;

    /** 取消原因 */
    @Excel(name = "取消原因")
    private String cancelReason;

    /** 资源pics */
    @Excel(name = "资源pics")
    private String pics;

    /** 状态（0待付款 1待发货 2待收货 3已完成 4待取消 5已取消） */
    @Excel(name = "状态", readConverterExp = "0=待付款,1=待发货,2=待收货,3=已完成,4=待取消,5=已取消")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;
}
